C语言问题,望高手指教`

来源:百度知道 编辑:UC知道 时间:2024/06/24 06:18:09
求a*x*x+b*x+c=0的根,用三个函数分别求当b*b-4*a*c大于0,等于0,小于0时的根并输出结果,从主函数输入a,b,c的值
我写的程序如下:

#include"stdio.h"
#include"math.h"
void main()
{
float a,b,c,disc;
float x1,x2,t;
float larger(float,float);/*这是b*b-4*a*c大于0的函数*/
float equal(float,float);/*这是b*b-4*a*c等于0的函数*/
float smaller(float,float);/*这是b*b-4*a*c小于0的函数*/
printf("Please input three number:");
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc>0)
{
larger(a,b);
printf("Two answer:x1=%5.2f;x2=%5.2f\n",x1,x2);

}
else if(disc==0)
{
equal(a,b);
printf("One answer:x1=x2=%5.2f\n",x1);
}
else
{
smaller(a,b);
printf("No answer:p+q=%5.2f\n",t);
}
}

float larger(float a,float b)
{
float x1,x2,disc;
x1=(-b+sqrt(disc))/2*a;
x2=(-b-sqrt(disc))/2*a;
}

float equal(float

楼主,我仔细看了一下,你的思路还是很清晰的,准备了三个函数
有几个错误:
1.你定义的三个函数的返回值为float型,但你函数定义里没有return,也就无法返回值。
2.你第一、二个函数原意是想返回x1,x2的值,但是C语言中函数返回值只能返回一个值,不能同时返回两个值,所以,如果你学过指针的话,就可以解决,如果你还没学指针,就不要用函数表示了
----------------------------------------------
大问题就这两个,我帮你修改了下,你对比你的程序看看
我用了指针,不明白的话,可以补充问题
#include"stdio.h"
#include"math.h"
void main()
{
float a,b,c,disc;
float x1,x2,t;
void larger(float,float,float *,float *,float); /*这是b*b-4*a*c大于0的函数*/
void equal(float,float,float *,float *); /*这是b*b-4*a*c等于0的函数*/
void smaller(float,float,float *); /*这是b*b-4*a*c小于0的函数*/
printf("Please input three number:");
scanf("%f,%f,%f",&a,&b,&c);
disc=b*b-4*a*c;
if(disc>0)
{
larger(a,b,&x1,&x2,disc);
printf("Two answer:x1=%5.2f;x2=%5.2f\n",x1,x2);
}
else if(disc==0)
{
equal(a,b,&x1,&x2);
printf